import request from '@/utils/request'

/**
 * 获取文件列表相关接口
 */
// 获取文件列表（区分文件路径）
export function getFileListByPath(query) {
  return request({
    url: '/system/file/getfilelist',
    method: 'get',
    params: query
  })
}

// 获取文件列表（区分文件类型）
export function getFileListByType(query) {
  return request({
    url: '/system/file/selectfilebyfiletype',
    method: 'get',
    params: query
  })
}

// 获取回收站文件列表
export function getRecoveryFile(data) {
  return request({
    url: '/system/recoveryfile/list',
    method: 'post',
    data: data
  })
}

// 获取我已分享的文件列表
export function getMyShareFileList(query) {
  return request({
    url: '/system/share/shareList',
    method: 'get',
    params: query
  })
}

// 获取存储占用
export function getStorage(query) {
  return request({
    url: '/system/filetransfer/getstorage',
    method: 'get',
    params: query
  })
}

// 获取文件目录树
export function getFoldTree(query) {
  return request({
    url: '/system/file/getfiletree',
    method: 'get',
    params: query
  })
}

/**
 * 单文件操作相关接口
 */
// 创建文件
export function createFold(data) {
  return request({
    url: '/system/file/createfile',
    method: 'post',
    data: data
  })
}
// 获取文件详细信息
export function getFileDetail(query) {
  return request({
    url: '/system/file/detail',
    method: 'get',
    params: query
  })
}
// 删除文件
export function deleteFile(data) {
  return request({
    url: '/system/file/deletefile',
    method: 'post',
    data: data
  })
}
// 复制文件
export function copyFile(data) {
  return request({
    url: '/system/file/copyfile',
    method: 'post',
    data: data
  })
}
// 移动文件
export function moveFile(data) {
  return request({
    url: '/system/file/movefile',
    method: 'post',
    data: data
  })
}
// 重命名文件
export function renameFile(data) {
  return request({
    url: '/system/file/renamefile',
    method: 'post',
    data: data
  })
}
// 解压文件
export function unzipFile(data) {
  return request({
    url: '/system/file/unzipfile',
    method: 'post',
    data: data
  })
}
// 全局搜索文件
export function searchFile(query) {
  return request({
    url: '/system/file/search',
    method: 'get',
    params: query
  })
}
// 分享文件
export function shareFile(data) {
  return request({
    url: '/system/share/sharefile',
    method: 'post',
    data: data
  })
}
// 校验分享链接过期时间
export function checkShareLinkEndtime(query) {
  return request({
    url: '/system/share/checkendtime',
    method: 'get',
    params: query
  })
}
// 校验分享链接是否需要提取码
export function checkShareLinkType(query) {
  return request({
    url: '/system/share/sharetype',
    method: 'get',
    params: query
  })
}
// 校验分享链接提取码是否正确
export function checkShareLinkCode(query) {
  return request({
    url: '/system/share/checkextractioncode',
    method: 'get',
    params: query
  })
}
// 获取分享文件列表
export function getShareFileList(query) {
  return request({
    url: '/system/share/sharefileList',
    method: 'get',
    params: query
  })
}
// 保存分享文件
export function saveShareFile(data) {
  return request({
    url: '/system/share/savesharefile',
    method: 'post',
    data: data
  })
}
// 取消分享文件
export function cancelShareFile(data) {
  return request({
    url: '/system/share/shareCancel',
    method: 'post',
    data: data
  })
}
// 批量取消分享文件
export function batchCancelShareFile(data) {
  return request({
    url: '/system/share/batchShareCancel',
    method: 'post',
    data: data
  })
}

/**
 * 文件批量操作相关接口
 */
// 批量删除文件
export function batchDeleteFile(data) {
  return request({
    url: '/system/file/batchdeletefile',
    method: 'post',
    data: data
  })
}
// 批量移动文件
export function batchMoveFile(data) {
  return request({
    url: '/system/file/batchmovefile',
    method: 'post',
    data: data
  })
}

/**
 * 回收站文件操作相关接口
 */
// 回收站文件删除
export function deleteRecoveryFile(data) {
  return request({
    url: '/system/recoveryfile/deleterecoveryfile',
    method: 'post',
    data: data
  })
}
// 回收站文件还原
export function restoreRecoveryFile(data) {
  return request({
    url: '/system/recoveryfile/restorefile',
    method: 'post',
    data: data
  })
}
// 回收站文件批量删除
export function batchDeleteRecoveryFile(data) {
  return request({
    url: '/system/recoveryfile/batchdelete',
    method: 'post',
    data: data
  })
}

/**
 * 文件公共接口
 */
// 文件预览
export function getFilePreview(query) {
  return request({
    url: '/system/filetransfer/preview',
    method: 'get',
    params: query
  })
}
// 文件修改
export function modifyFileContent(data) {
  return request({
    url: '/system/file/update',
    method: 'post',
    data: data
  })
}